#ifndef __SoftKey_h__
#define __SoftKey_h__
#include "../GuiEvent.h"

#define COLOR_SOFTKEY_BG		V_RGB(255,255,255)
#define COLOR_SOFTKEY_TEXT		V_RGB(0,0,0)

enum mmi_softkey_enum
{
	ENUM_SOFTKEY_START = 0,
	ENUM_SOFTKEY_LSK = ENUM_SOFTKEY_START,
	ENUM_SOFTKEY_CSK,
	ENUM_SOFTKEY_RSK,

	ENUM_SOFTKEY_END
};

struct control_softkey
{
	struct common_control_property p;
	struct gui_point lsk_point;
	struct gui_point csk_point;
	struct gui_point rsk_point;
	VMSTR lsk_label;
	VMSTR csk_label;
	VMSTR rsk_label;
	FuncPtr lsk_handle;
	FuncPtr csk_handle;
	FuncPtr rsk_handle;
	VMUINT8 *bg_img;
};

extern VMINT CreateSoftKey(VMINT is_actived, VMUINT8* bg_img, VMSTR lsk_label, VMSTR csk_label, VMSTR rsk_label);
extern void SetLSKHandle(FuncPtr handle);
extern void SetCSKHandle(FuncPtr handle);
extern void SetRSKHandle(FuncPtr handle);
extern void SetSoftKeyHandle(FuncPtr lsk_handle, FuncPtr csk_handle, FuncPtr rsk_handle);
extern void SetLSKLabel(VMSTR text);
extern void SetCSKLabel(VMSTR text);
extern void SetRSKLabel(VMSTR text);
extern void SetSoftKeyLabel(VMSTR lsk_label, VMSTR csk_label, VMSTR rsk_label);
extern void ChangeLSKLabelHandle(FuncPtr handle, VMSTR text);
extern void ChangeCSKLabelHandle(FuncPtr handle, VMSTR text);
extern void ChangeRSKLabelHandle(FuncPtr handle, VMSTR text);
extern void ShowSoftKey(VMINT hctrl);
extern void RefreshSoftKey(VMINT hctrl);
extern void FreeSoftKey(VMINT hctrl);
extern void TouchSoftKeyEventHandle(VMINT tevent, VMINT x, VMINT y);
extern void RedrawSoftKeyByFramework(VMINT16 keyCode, VMINT16 keyType);

#endif
